#include "insertsort.h"

InsertSort::InsertSort(QObject *parent):
    IAlgo(parent)
{

}

QString InsertSort::name()
{
    return "Insert Sort";
}

void InsertSort::run()
{
    _run_time = 0;
    QVector<int>& data = _data->GetData();

    for(int i = 1; i < data.size(); ++i){
        int t = data[i];
        int j = i - 1;
        for(; j >= 0; --j){
            _run_time ++;
            if(t >  data[j]){
                break;
            }
            else{
                data[j + 1] = data[j];
                _data->Refresh();
            }
        }
        data[j + 1] = t;
        _data->Refresh();
    }
}
